package com.xuyuan.spring.auto.condition;

import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.type.AnnotatedTypeMetadata;

public class CustomCondition implements Condition {

    /**
     * @param context  the condition context
     * @param metadata 标注类的所有信息
     */
    @Override
    public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
        //  BeanDefinitionReaderUtils.generateBeanName(BeanDefinitionBuilder.genericBeanDefinition(AutoExample.class).getBeanDefinition(),context.getRegistry()) 同一个Class可以有多个实例，所以通过Spring提供的API获取的name是不同的。
        // if (context.getBeanFactory().containsBean(
        //         BeanDefinitionReaderUtils.generateBeanName(BeanDefinitionBuilder.genericBeanDefinition(AutoExample.class).getBeanDefinition(),
        //                 context.getRegistry()))) return false;
        // return true;
        return false;
    }
}
